package util.www.sql;

import java.sql.SQLException;

import util.form.respuesta.Registro;

public abstract class AbstractInsertUpdateSql 
implements InsertUpdateSql
{
	
	protected final String nombreTabla;
	protected final StringBuilder sbValores = new StringBuilder();
	//protected Registro registro;
	
	public AbstractInsertUpdateSql(String nombreTabla) throws SQLException {
		if(nombreTabla==null || nombreTabla.trim().isEmpty())
			throw new SQLException("Falta el nombre de la tabla");
		this.nombreTabla = nombreTabla;
	}

/*
	public AbstractInsertUpdateSql(Registro reg) throws SQLException {		
		this(reg.getNombre());
		registro = reg;
	}
*/	
	
	public void agregar(Registro registro) throws SQLException {
		if(registro!=null) {
			registro.agregarValoresSQL(this);			
			//registro = null;//para que solo se procese la primera vez
		}
	}
	
	
	protected abstract String getSqlInterno() throws SQLException;
				
	public final String getSql() throws SQLException {		
		return getSqlInterno();
	}
	

	/**
	 * Solo se decodifican los valores. Las columnas NO.
	 * @return
	 */
	//public abstract String getSqlDecodificado() throws SQLException;
	
	
	
}
